home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-09-20 | 43.3 KB | 1,057 lines |
-
-
-
- text(n) Tk Commands
-
-
-
- _________________________________________________________________
-
- NAME
- text - Create and manipulate text widgets
-
- SYNOPSIS
- text _p_a_t_h_N_a_m_e ?_o_p_t_i_o_n_s?
-
- STANDARD OPTIONS
- background foreground insertWidth selectBorderWidth
- borderWidth insertBackground padXselectForeground
- cursor insertBorderWidth padYsetGrid
- exportSelection insertOffTime relief yScrollCommand
- font insertOnTime selectBackground
-
- See the ``options'' manual entry for details on the standard
- options.
-
- WIDGET-SPECIFIC OPTIONS
- Name: height
- Class: Height
- Command-Line Switch: -height
-
- Specifies the desired height for the window, in units
- of characters. Must be at least one.
-
- Name: state
- Class: State
- Command-Line Switch: -state
-
- Specifies one of two states for the text: normal or
- disabled. If the text is disabled then characters may
- not be inserted or deleted and no insertion cursor will
- be displayed, even if the input focus is in the widget.
-
- Name: width
- Class: Width
- Command-Line Switch: -width
-
- Specifies the desired width for the window in units of
- characters. If the font doesn't have a uniform width
- then the width of the character ``0'' is used in
- translating from character units to screen units.
-
- Name: wrap
- Class: Wrap
- Command-Line Switch: -wrap
-
- Specifies how to handle lines in the text that are too
- long to be displayed in a single line of the text's
- window. The value must be none or char or word. A
- wrap mode of none means that each line of text appears
-
-
-
- Tk 1
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- as exactly one line on the screen; extra characters
- that don't fit on the screen are not displayed. In the
- other modes each line of text will be broken up into
- several screen lines if necessary to keep all the char-
- acters visible. In char mode a screen line break may
- occur after any character; in word mode a line break
- will only be made at word boundaries.
- _________________________________________________________________
-
-
- DESCRIPTION
- The text command creates a new window (given by the _p_a_t_h_N_a_m_e
- argument) and makes it into a text widget. Additional
- options, described above, may be specified on the command
- line or in the option database to configure aspects of the
- text such as its default background color and relief. The
- text command returns the path name of the new window.
-
- A text widget displays one or more lines of text and allows
- that text to be edited. Text widgets support three dif-
- ferent kinds of annotations on the text, called tags, marks,
- and windows. Tags allow different portions of the text to
- be displayed with different fonts and colors. In addition,
- Tcl commands can be associated with tags so that commands
- are invoked when particular actions such as keystrokes and
- mouse button presses occur in particular ranges of the text.
- See TAGS below for more details.
-
- The second form of annotation consists of marks, which are
- floating markers in the text. Marks are used to keep track
- of various interesting positions in the text as it is
- edited. See MARKS below for more details.
-
- The third form of annotation allows arbitrary windows to be
- displayed in the text widget. See WINDOWS below for more
- details.
-
-
- INDICES
- Many of the widget commands for texts take one or more
- indices as arguments. An index is a string used to indicate
- a particular place within a text, such as a place to insert
- characters or one endpoint of a range of characters to
- delete. Indices have the syntax
-
- _b_a_s_e _m_o_d_i_f_i_e_r _m_o_d_i_f_i_e_r _m_o_d_i_f_i_e_r ...
-
- Where _b_a_s_e gives a starting point and the _m_o_d_i_f_i_e_rs adjust
- the index from the starting point (e.g. move forward or
- backward one character). Every index must contain a _b_a_s_e,
- but the _m_o_d_i_f_i_e_rs are optional.
-
-
-
-
- Tk 2
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- The _b_a_s_e for an index must have one of the following forms:
-
- _l_i_n_e._c_h_a_r Indicates _c_h_a_r'th character on line _l_i_n_e. Lines
- are numbered from 1 for consistency with other
- UNIX programs that use this numbering scheme.
- Within a line, characters are numbered from 0.
-
- @_x,_y Indicates the character that covers the pixel
- whose x and y coordinates within the text's win-
- dow are _x and _y.
-
- end Indicates the last character in the text, which
- is always a newline character.
-
- _m_a_r_k Indicates the character just after the mark
- whose name is _m_a_r_k.
-
- _t_a_g.first Indicates the first character in the text that
- has been tagged with _t_a_g. This form generates
- an error if no characters are currently tagged
- with _t_a_g.
-
- _t_a_g.last Indicates the character just after the last one
- in the text that has been tagged with _t_a_g. This
- form generates an error if no characters are
- currently tagged with _t_a_g.
-
- If modifiers follow the base index, each one of them must
- have one of the forms listed below. Keywords such as chars
- and wordend may be abbreviated as long as the abbreviation
- is unambiguous.
-
- + _c_o_u_n_t chars
- Adjust the index forward by _c_o_u_n_t characters, moving to
- later lines in the text if necessary. If there are
- fewer than _c_o_u_n_t characters in the text after the
- current index, then set the index to the last character
- in the text. Spaces on either side of _c_o_u_n_t are
- optional.
-
- - _c_o_u_n_t chars
- Adjust the index backward by _c_o_u_n_t characters, moving
- to earlier lines in the text if necessary. If there
- are fewer than _c_o_u_n_t characters in the text before the
- current index, then set the index to the first charac-
- ter in the text. Spaces on either side of _c_o_u_n_t are
- optional.
-
- + _c_o_u_n_t lines
- Adjust the index forward by _c_o_u_n_t lines, retaining the
- same character position within the line. If there are
- fewer than _c_o_u_n_t lines after the line containing the
-
-
-
- Tk 3
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- current index, then set the index to refer to the same
- character position on the last line of the text. Then,
- if the line is not long enough to contain a character
- at the indicated character position, adjust the charac-
- ter position to refer to the last character of the line
- (the newline). Spaces on either side of _c_o_u_n_t are
- optional.
-
- - _c_o_u_n_t lines
- Adjust the index backward by _c_o_u_n_t lines, retaining the
- same character position within the line. If there are
- fewer than _c_o_u_n_t lines before the line containing the
- current index, then set the index to refer to the same
- character position on the first line of the text.
- Then, if the line is not long enough to contain a char-
- acter at the indicated character position, adjust the
- character position to refer to the last character of
- the line (the newline). Spaces on either side of _c_o_u_n_t
- are optional.
-
- linestart
- Adjust the index to refer to the first character on the
- line.
-
- lineend
- Adjust the index to refer to the last character on the
- line (the newline).
-
- wordstart
- Adjust the index to refer to the first character of the
- word containing the current index. A word consists of
- any number of adjacent characters that are letters,
- digits, or underscores, or a single character that is
- not one of these.
-
- wordend
- Adjust the index to refer to the character just after
- the last one of the word containing the current index.
- If the current index refers to the last character of
- the text then it is not modified.
-
- If more than one modifier is present then they are applied
- in left-to-right order. For example, the index ``end - 1
- chars'' refers to the next-to-last character in the text and
- ``insert wordstart - 1 c'' refers to the character just
- before the first one in the word containing the insertion
- cursor.
-
-
- TAGS
- The first form of annotation in text widgets is a tag. A
- tag is a textual string that is associated with some of the
-
-
-
- Tk 4
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- characters in a text. There may be any number of tags asso-
- ciated with characters in a text. Each tag may refer to a
- single character, a range of characters, or several ranges
- of characters. An individual character may have any number
- of tags associated with it.
-
- A priority order is defined among tags, and this order is
- used in implementing some of the tag-related functions
- described below. When a tag is defined (by associating it
- with characters or setting its display options or binding
- commands to it), it is given a priority higher than any
- existing tag. The priority order of tags may be redefined
- using the ``_p_a_t_h_N_a_m_e tag raise'' and ``_p_a_t_h_N_a_m_e tag lower''
- widget commands.
-
- Tags serve three purposes in text widgets. First, they con-
- trol the way information is displayed on the screen. By
- default, characters are displayed as determined by the back-
- ground, font, and foreground options for the text widget.
- However, display options may be associated with individual
- tags using the ``_p_a_t_h_N_a_m_e tag configure'' widget command.
- If a character has been tagged, then the display options
- associated with the tag override the default display style.
- The following options are currently supported for tags:
-
- -background _c_o_l_o_r
- _C_o_l_o_r specifies the background color to use for charac-
- ters associated with the tag. It may have any of the
- forms accepted by Tk_GetColor.
-
- -bgstipple _b_i_t_m_a_p
- _B_i_t_m_a_p specifies a bitmap that is used as a stipple
- pattern for the background. It may have any of the
- forms accepted by Tk_GetBitmap. If _b_i_t_m_a_p hasn't been
- specified, or if it is specified as an empty string,
- then a solid fill will be used for the background.
-
- -borderwidth _p_i_x_e_l_s
- _P_i_x_e_l_s specifies the width of a 3-D border to draw
- around the background. It may have any of the forms
- accepted by Tk_GetPixels. This option is used in con-
- junction with the -relief option to give a 3-D appear-
- ance to the background for characters; it is ignored
- unless the -background option has been set for the tag.
-
- -fgstipple _b_i_t_m_a_p
- _B_i_t_m_a_p specifies a bitmap that is used as a stipple
- pattern when drawing text and other foreground informa-
- tion such as underlines. It may have any of the forms
- accepted by Tk_GetBitmap. If _b_i_t_m_a_p hasn't been speci-
- fied, or if it is specified as an empty string, then a
- solid fill will be used.
-
-
-
- Tk 5
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- -font _f_o_n_t_N_a_m_e
- _F_o_n_t_N_a_m_e is the name of a font to use for drawing char-
- acters. It may have any of the forms accepted by
- Tk_GetFontStruct.
-
- -foreground _c_o_l_o_r
- _C_o_l_o_r specifies the color to use when drawing text and
- other foreground information such as underlines. It
- may have any of the forms accepted by Tk_GetColor.
-
- -relief _r_e_l_i_e_f
- _R_e_l_i_e_f _s_p_e_c_i_f_i_e_s _t_h_e _3-_D _r_e_l_i_e_f _t_o _u_s_e _f_o_r _d_r_a_w_i_n_g
- _b_a_c_k_g_r_o_u_n_d_s, _i_n _a_n_y _o_f _t_h_e _f_o_r_m_s _a_c_c_e_p_t_e_d _b_y
- Tk_GetRelief. This option is used in conjunction with
- the -borderwidth option to give a 3-D appearance to the
- background for characters; it is ignored unless the
- -background option has been set for the tag.
-
- -underline _b_o_o_l_e_a_n
- _B_o_o_l_e_a_n specifies whether or not to draw an underline
- underneath characters. It may have any of the forms
- accepted by Tk_GetBoolean.
-
- If a character has several tags associated with it, and if
- their display options conflict, then the options of the
- highest priority tag are used. If a particular display
- option hasn't been specified for a particular tag, or if it
- is specified as an empty string, then that option will never
- be used; the next-highest-priority tag's option will used
- instead. If no tag specifies a particular display optionl,
- then the default style for the widget will be used.
-
- The second purpose for tags is event bindings. You can
- associate bindings with a tag in much the same way you can
- associate bindings with a widget class: whenever particular
- X events occur on characters with the given tag, a given Tcl
- command will be executed. Tag bindings can be used to give
- behaviors to ranges of characters; among other things, this
- allows hypertext-like features to be implemented. For
- details, see the description of the tag bind widget command
- below.
-
- The third use for tags is in managing the selection. See
- THE SELECTION below.
-
-
- MARKS
- The second form of annotation in text widgets is a mark.
- Marks are used for remembering particular places in a text.
- They are something like tags, in that they have names and
- they refer to places in the file, but a mark isn't associ-
- ated with particular characters. Instead, a mark is
-
-
-
- Tk 6
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- associated with the gap between two characters. Only a sin-
- gle position may be associated with a mark at any given
- time. If the characters around a mark are deleted the mark
- will still remain; it will just have new neighbor charac-
- ters. In contrast, if the characters containing a tag are
- deleted then the tag will no longer have an association with
- characters in the file. Marks may be manipulated with the
- ``_p_a_t_h_N_a_m_e mark'' widget command, and their current loca-
- tions may be determined by using the mark name as an index
- in widget commands.
-
- The name space for marks is different from that for tags:
- the same name may be used for both a mark and a tag, but
- they will refer to different things.
-
- Two marks have special significance. First, the mark insert
- is associated with the insertion cursor, as described under
- THE INSERTION CURSOR below. Second, the mark current is
- associated with the character closest to the mouse and is
- adjusted automatically to track the mouse position and any
- changes to the text in the widget (one exception: current
- is not updated in response to mouse motions if a mouse but-
- ton is down; the update will be deferred until all mouse
- buttons have been released). Neither of these special marks
- may be unset.
-
-
- WINDOWS
- The third form of annotation in text widgets is a window.
- Window support isn't implemented yet, but when it is it will
- be described here.
-
-
- THE SELECTION
- Text widgets support the standard X selection. Selection
- support is implemented via tags. If the exportSelection
- option for the text widget is true then the sel tag will be
- associated with the selection:
-
- [1] Whenever characters are tagged with sel the text widget
- will claim ownership of the selection.
-
- [2] Attempts to retrieve the selection will be serviced by
- the text widget, returning all the charaters with the
- sel tag.
-
- [3] If the selection is claimed away by another application
- or by another window within this application, then the
- sel tag will be removed from all characters in the
- text.
-
-
-
-
-
- Tk 7
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- The sel tag is automatically defined when a text widget is
- created, and it may not be deleted with the ``_p_a_t_h_N_a_m_e tag
- delete'' widget command. Furthermore, the selectBackground,
- selectBorderWidth, and selectForeground options for the text
- widget are tied to the -background, -borderwidth, and -fore-
- ground options for the sel tag: changes in either will
- automatically be reflected in the other.
-
-
- THE INSERTION CURSOR
- The mark named insert has special significance in text widg-
- ets. It is defined automatically when a text widget is
- created and it may not be unset with the ``_p_a_t_h_N_a_m_e mark
- unset'' widget command. The insert mark represents the
- position of the insertion cursor, and the insertion cursor
- will automatically be drawn at this point whenever the text
- widget has the input focus.
-
-
- WIDGET COMMAND
- The text command creates a new Tcl command whose name is the
- same as the path name of the text's window. This command
- may be used to invoke various operations on the widget. It
- has the following general form:
-
- _p_a_t_h_N_a_m_e _o_p_t_i_o_n ?_a_r_g _a_r_g ...?
-
- _P_a_t_h_N_a_m_e is the name of the command, which is the same as
- the text widget's path name. _O_p_t_i_o_n and the _a_r_gs determine
- the exact behavior of the command. The following commands
- are possible for text widgets:
-
- _p_a_t_h_N_a_m_e compare _i_n_d_e_x_1 _o_p _i_n_d_e_x_2
- Compares the indices given by _i_n_d_e_x_1 and _i_n_d_e_x_2 accord-
- ing to the relational operator given by _o_p, and returns
- 1 if the relationship is satisfied and 0 if it isn't.
- _O_p must be one of the operators <, <=, ==, >=, >, or
- !=. If _o_p is == then 1 is returned if the two indices
- refer to the same character, if _o_p is < then 1 is
- returned if _i_n_d_e_x_1 refers to an earlier character in
- the text than _i_n_d_e_x_2, and so on.
-
- _p_a_t_h_N_a_m_e configure ?_o_p_t_i_o_n? ?_v_a_l_u_e _o_p_t_i_o_n _v_a_l_u_e ...?
- Query or modify the configuration options of the
- widget. If no _o_p_t_i_o_n is specified, returns a list
- describing all of the available options for _p_a_t_h_N_a_m_e
- (see Tk_ConfigureInfo for information on the format of
- this list). If _o_p_t_i_o_n is specified with no _v_a_l_u_e, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no _o_p_t_i_o_n is
- specified). If one or more _o_p_t_i_o_n-_v_a_l_u_e pairs are
- specified, then the command modifies the given widget
-
-
-
- Tk 8
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- option(s) to have the given value(s); in this case the
- command returns an empty string. _O_p_t_i_o_n may have any
- of the values accepted by the text command.
-
- _p_a_t_h_N_a_m_e debug ?_b_o_o_l_e_a_n?
- If _b_o_o_l_e_a_n is specified, then it must have one of the
- true or false values accepted by Tcl_GetBoolean. If
- the value is a true one then internal consistency
- checks will be turned on in the B-tree code associated
- with text widgets. If _b_o_o_l_e_a_n has a false value then
- the debugging checks will be turned off. In either
- case the command returns an empty string. If _b_o_o_l_e_a_n
- is not specified then the command returns on or off to
- indicate whether or not debugging is turned on. There
- is a single debugging switch shared by all text widg-
- ets: turning debugging on or off in any widget turns
- it on or off for all widgets. For widgets with large
- amounts of text, the consistency checks may cause a
- noticeable slow-down.
-
- _p_a_t_h_N_a_m_e delete _i_n_d_e_x_1 ?_i_n_d_e_x_2?
- Delete a range of characters from the text. If both
- _i_n_d_e_x_1 and _i_n_d_e_x_2 are specified, then delete all the
- characters starting with the one given by _i_n_d_e_x_1 and
- stopping just before _i_n_d_e_x_2 (i.e. the character at
- _i_n_d_e_x_2 is not deleted). If _i_n_d_e_x_2 doesn't specify a
- position later in the text than _i_n_d_e_x_1 then no charac-
- ters are deleted. If _i_n_d_e_x_2 isn't specified then the
- single character at _i_n_d_e_x_1 is deleted. It is not
- allowable to delete characters in a way that would
- leave the text without a newline as the last character.
- The command returns an empty string.
-
- _p_a_t_h_N_a_m_e get _i_n_d_e_x_1 ?_i_n_d_e_x_2?
- Return a range of characters from the text. The return
- value will be all the characters in the text starting
- with the one whose index is _i_n_d_e_x_1 and ending just
- before the one whose index is _i_n_d_e_x_2 (the character at
- _i_n_d_e_x_2 will not be returned). If _i_n_d_e_x_2 is omitted
- then the single character at _i_n_d_e_x_1 is returned. If
- there are no characters in the specified range (e.g.
- _i_n_d_e_x_1 is past the end of the file or _i_n_d_e_x_2 is less
- than or equal to _i_n_d_e_x_1) then an empty string is
- returned.
-
- _p_a_t_h_N_a_m_e index _i_n_d_e_x
- Returns the position corresponding to _i_n_d_e_x in the form
- _l_i_n_e._c_h_a_r where _l_i_n_e is the line number and _c_h_a_r is the
- character number. _I_n_d_e_x may have any of the forms
- described under INDICES above.
-
- _p_a_t_h_N_a_m_e insert _i_n_d_e_x _c_h_a_r_s
-
-
-
- Tk 9
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- Inserts _c_h_a_r_s into the text just before the character
- at _i_n_d_e_x and returns an empty string. It is not possi-
- ble to insert characters after the last newline of the
- text.
-
- _p_a_t_h_N_a_m_e mark _o_p_t_i_o_n ?_a_r_g _a_r_g ...?
- This command is used to manipulate marks. The exact
- behavior of the command depends on the _o_p_t_i_o_n argument
- that follows the mark argument. The following forms of
- the command are currently supported:
-
- _p_a_t_h_N_a_m_e mark names
- Returns a list whose elements are the names of all
- the marks that are currently set.
-
- _p_a_t_h_N_a_m_e mark set _m_a_r_k_N_a_m_e _i_n_d_e_x
- Sets the mark named _m_a_r_k_N_a_m_e to a position just
- before the character at _i_n_d_e_x. If _m_a_r_k_N_a_m_e
- already exists, it is moved from its old position;
- if it doesn't exist, a new mark is created. This
- command returns an empty string.
-
- _p_a_t_h_N_a_m_e mark unset _m_a_r_k_N_a_m_e ?_m_a_r_k_N_a_m_e _m_a_r_k_N_a_m_e ...?
- Remove the mark corresponding to each of the _m_a_r_k_-
- _N_a_m_e arguments. The removed marks will not be
- usable in indices and will not be returned by
- future calls to ``_p_a_t_h_N_a_m_e mark names''. This
- command returns an empty string.
-
- _p_a_t_h_N_a_m_e scan _o_p_t_i_o_n _a_r_g_s
- This command is used to implement scanning on texts.
- It has two forms, depending on _o_p_t_i_o_n:
-
- _p_a_t_h_N_a_m_e scan mark _y
- Records _y and the current view in the text window;
- used in conjunction with later scan dragto com-
- mands. Typically this command is associated with
- a mouse button press in the widget. It returns an
- empty string.
-
- _p_a_t_h_N_a_m_e scan dragto _y
- This command computes the difference between its _y
- argument and the _y argument to the last scan mark
- command for the widget. It then adjusts the view
- up or down by 10 times the difference in y-
- coordinates. This command is typically associated
- with mouse motion events in the widget, to produce
- the effect of dragging the text at high speed
- through the window. The return value is an empty
- string.
-
- _p_a_t_h_N_a_m_e tag _o_p_t_i_o_n ?_a_r_g _a_r_g ...?
-
-
-
- Tk 10
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- This command is used to manipulate tags. The exact
- behavior of the command depends on the _o_p_t_i_o_n argument
- that follows the tag argument. The following forms of
- the command are currently supported:
-
- _p_a_t_h_N_a_m_e tag add _t_a_g_N_a_m_e _i_n_d_e_x_1 ?_i_n_d_e_x_2?
- Associate the tag _t_a_g_N_a_m_e with all of the charac-
- ters starting with _i_n_d_e_x_1 and ending just before
- _i_n_d_e_x_2 (the character at _i_n_d_e_x_2 isn't tagged). If
- _i_n_d_e_x_2 is omitted then the single character at
- _i_n_d_e_x_1 is tagged. If there are no characters in
- the specified range (e.g. _i_n_d_e_x_1 is past the end
- of the file or _i_n_d_e_x_2 is less than or equal to
- _i_n_d_e_x_1) then the command has no effect. This com-
- mand returns an empty string.
-
- _p_a_t_h_N_a_m_e tag bind _t_a_g_N_a_m_e ?_s_e_q_u_e_n_c_e? ?_c_o_m_m_a_n_d?
- This command associates _c_o_m_m_a_n_d with the tag given
- by _t_a_g_N_a_m_e. Whenever the event sequence given by
- _s_e_q_u_e_n_c_e occurs for a character that has been
- tagged with _t_a_g_N_a_m_e, the command will be invoked.
- This widget command is similar to the bind command
- except that it operates on characters in a text
- rather than entire widgets. See the bind manual
- entry for complete details on the syntax of
- _s_e_q_u_e_n_c_e and the substitutions performed on _c_o_m_-
- _m_a_n_d before invoking it. If all arguments are
- specified then a new binding is created, replacing
- any existing binding for the same _s_e_q_u_e_n_c_e and
- _t_a_g_N_a_m_e (if the first character of _c_o_m_m_a_n_d is
- ``+'' then _c_o_m_m_a_n_d augments an existing binding
- rather than replacing it). In this case the
- return value is an empty string. If _c_o_m_m_a_n_d is
- omitted then the command returns the _c_o_m_m_a_n_d asso-
- ciated with _t_a_g_N_a_m_e and _s_e_q_u_e_n_c_e (an error occurs
- if there is no such binding). If both _c_o_m_m_a_n_d and
- _s_e_q_u_e_n_c_e are omitted then the command returns a
- list of all the sequences for which bindings have
- been defined for _t_a_g_N_a_m_e.
-
- The only events for which bindings may be speci-
- fied are those related to the mouse and keyboard,
- such as Enter, Leave, ButtonPress, Motion, and
- KeyPress. Event bindings for a text widget use
- the current mark described under MARKS above.
- Enter events trigger for a character when it
- becomes the current character (i.e. the current
- mark moves to just in front of that character).
- Leave events trigger for a character when it
- ceases to be the current item (i.e. the current
- mark moves away from that character, or the char-
- acter is deleted). These events are different
-
-
-
- Tk 11
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- than Enter and Leave events for windows. Mouse
- and keyboard events are directed to the current
- character.
-
- It is possible for the current character to have
- multiple tags, and for each of them to have a
- binding for a particular event sequence. When
- this occurs, the binding from the highest priority
- tag is used. If a particular tag doesn't have a
- binding that matches an event, then the tag is
- ignored and tags with lower priority will be
- checked.
-
- If bindings are created for the widget as a whole
- using the bind command, then those bindings will
- supplement the tag bindings. This means that a
- single event can trigger two Tcl scripts, one for
- a widget-level binding and one for a tag-level
- binding.
-
- _v_a_l_u_e ...?
- _p_a_t_h_N_a_m_e tag configure _t_a_g_N_a_m_e ?_o_p_t_i_o_n? ?_v_a_l_u_e? ?_o_p_t_i_o_n
- This command is similar to the configure widget
- command except that it modifies options associated
- with the tag given by _t_a_g_N_a_m_e instead of modifying
- options for the overall text widget. If no _o_p_t_i_o_n
- is specified, the command returns a list describ-
- ing all of the available options for _t_a_g_N_a_m_e (see
- Tk_ConfigureInfo for information on the format of
- this list). If _o_p_t_i_o_n is specified with no _v_a_l_u_e,
- then the command returns a list describing the one
- named option (this list will be identical to the
- corresponding sublist of the value returned if no
- _o_p_t_i_o_n is specified). If one or more _o_p_t_i_o_n-_v_a_l_u_e
- pairs are specified, then the command modifies the
- given option(s) to have the given value(s) in _t_a_g_-
- _N_a_m_e; in this case the command returns an empty
- string. See TAGS above for details on the options
- available for tags.
-
- _p_a_t_h_N_a_m_e tag delete _t_a_g_N_a_m_e ?_t_a_g_N_a_m_e ...?
- Deletes all tag information for each of the _t_a_g_-
- _N_a_m_e arguments. The command removes the tags from
- all characters in the file and also deletes any
- other information associated with the tags, such
- as bindings and display information. The command
- returns an empty string.
-
- _p_a_t_h_N_a_m_etag lower _t_a_g_N_a_m_e ?_b_e_l_o_w_T_h_i_s?
- Changes the priority of tag _t_a_g_N_a_m_e so that it is
- just lower in priority than the tag whose name is
- _b_e_l_o_w_T_h_i_s. If _b_e_l_o_w_T_h_i_s is omitted, then
-
-
-
- Tk 12
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- _t_a_g_N_a_m_e's priority is changed to make it lowest
- priority of all tags.
-
- _p_a_t_h_N_a_m_e tag names ?_i_n_d_e_x?
- Returns a list whose elements are the names of all
- the tags that are active at the character position
- given by _i_n_d_e_x. If _i_n_d_e_x is omitted, then the
- return value will describe all of the tags that
- exist for the text (this includes all tags that
- have been named in a ``_p_a_t_h_N_a_m_e tag'' widget com-
- mand but haven't been deleted by a ``_p_a_t_h_N_a_m_e tag
- delete'' widget command, even if no characters are
- currently marked with the tag). The list will be
- sorted in order from lowest priority to highest
- priority.
-
- _p_a_t_h_N_a_m_e tag nextrange _t_a_g_N_a_m_e _i_n_d_e_x_1 ?_i_n_d_e_x_2?
- This command searches the text for a range of
- characters tagged with _t_a_g_N_a_m_e where the first
- character of the range is no earlier than the
- character at _i_n_d_e_x_1 and no later than the charac-
- ter just before _i_n_d_e_x_2 (a range starting at _i_n_d_e_x_2
- will not be considered). If several matching
- ranges exist, the first one is chosen. The
- command's return value is a list containing two
- elements, which are the index of the first charac-
- ter of the range and the index of the character
- just after the last one in the range. If no
- matching range is found then the return value is
- an empty string. If _i_n_d_e_x_2 is not given then it
- defaults to the end of the text.
-
- _p_a_t_h_N_a_m_etag raise _t_a_g_N_a_m_e ?_a_b_o_v_e_T_h_i_s?
- Changes the priority of tag _t_a_g_N_a_m_e so that it is
- just higher in priority than the tag whose name is
- _a_b_o_v_e_T_h_i_s. If _a_b_o_v_e_T_h_i_s is omitted, then
- _t_a_g_N_a_m_e's priority is changed to make it highest
- priority of all tags.
-
- _p_a_t_h_N_a_m_e tag ranges _t_a_g_N_a_m_e
- Returns a list describing all of the ranges of
- text that have been tagged with _t_a_g_N_a_m_e. The
- first two elements of the list describe the first
- tagged range in the text, the next two elements
- describe the second range, and so on. The first
- element of each pair contains the index of the
- first character of the range, and the second ele-
- ment of the pair contains the index of the charac-
- ter just after the last one in the range. If
- there are no characters tagged with _t_a_g then an
- empty string is returned.
-
-
-
-
- Tk 13
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- _p_a_t_h_N_a_m_e tag remove _t_a_g_N_a_m_e _i_n_d_e_x_1 ?_i_n_d_e_x_2?
- Remove the tag _t_a_g_N_a_m_e from all of the characters
- starting at _i_n_d_e_x_1 and ending just before _i_n_d_e_x_2
- (the character at _i_n_d_e_x_2 isn't affected). If
- _i_n_d_e_x_2 is omitted then the single character at
- _i_n_d_e_x_1 is untagged. If there are no characters in
- the specified range (e.g. _i_n_d_e_x_1 is past the end
- of the file or _i_n_d_e_x_2 is less than or equal to
- _i_n_d_e_x_1) then the command has no effect. This com-
- mand returns an empty string.
-
- _p_a_t_h_N_a_m_e yview ?-pickplace? _w_h_a_t
- This command changes the view in the widget's window so
- that the line given by _w_h_a_t is visible in the window.
- _W_h_a_t may be either an absolute line number, where 0
- corresponds to the first line of the file, or an index
- with any of the forms described under INDICES above.
- The first form (absolute line number) is used in the
- commands issued by scrollbars to control the widget's
- view. If the -pickplace option isn't specified then
- _w_h_a_t will appear at the top of the window. If -pick-
- place is specified then the widget chooses where _w_h_a_t
- appears in the window:
-
- [1] If _w_h_a_t is already visible somewhere in the window
- then the command does nothing.
-
- [2] If _w_h_a_t is only a few lines off-screen above the
- window then it will be positioned at the top of
- the window.
-
- [3] If _w_h_a_t is only a few lines off-screen below the
- window then it will be positioned at the bottom of
- the window.
-
- [4] Otherwise, _w_h_a_t will be centered in the window.
-
- The -pickplace option is typically used after inserting
- text to make sure that the insertion cursor is still
- visible on the screen. This command returns an empty
- string.
-
-
- BINDINGS
- Tk automatically creates class bindings for texts that give
- them the following default behavior:
-
- [1] Pressing mouse button 1 in an text positions the inser-
- tion cursor just before the character underneath the
- mouse cursor and sets the input focus to this widget.
-
- [2] Dragging with mouse button 1 strokes out a selection
-
-
-
- Tk 14
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- between the insertion cursor and the character under
- the mouse.
-
- [3] If you double-press mouse button 1 then the word under
- the mouse cursor will be selected, the insertion cursor
- will be positioned at the beginning of the word, and
- dragging the mouse will stroke out a selection whole
- words at a time.
-
- [4] If you triple-press mouse button 1 then the line under
- the mouse cursor will be selected, the insertion cursor
- will be positioned at the beginning of the line, and
- dragging the mouse will stroke out a selection whole
- line at a time.
-
- [5] The ends of the selection can be adjusted by dragging
- with mouse button 1 while the shift key is down; this
- will adjust the end of the selection that was nearest
- to the mouse cursor when button 1 was pressed. If the
- selection was made in word or line mode then it will be
- adjusted in this same mode.
-
- [6] The view in the text can be adjusted by dragging with
- mouse button 2.
-
- [7] If the input focus is in a text widget and characters
- are typed on the keyboard, the characters are inserted
- just before the insertion cursor.
-
- [8] Control+h and the Backspace and Delete keys erase the
- character just before the insertion cursor.
-
- [9] Control+v inserts the current selection just before the
- insertion cursor.
-
- [10] Control+d deletes the selected characters; an error
- occurs if the selection is not in this widget.
-
- If the text is disabled using the state option, then the
- text's view can still be adjusted and text in the text can
- still be selected, but no insertion cursor will be displayed
- and no text modifications will take place.
-
- The behavior of texts can be changed by defining new bind-
- ings for individual widgets or by redefining the class bind-
- ings.
-
-
- PERFORMANCE ISSUES
- Text widgets should run efficiently under a variety of con-
- ditions. The text widget uses about 2-3 bytes of main
- memory for each byte of text, so texts containing a megabyte
-
-
-
- Tk 15
-
-
-
-
-
-
- text(n) Tk Commands
-
-
-
- or more should be practical on most workstations. Text is
- represented internally with a modified B-tree structure that
- makes operations relatively efficient even with large texts.
- Tags are included in the B-tree structure in a way that
- allows tags to span large ranges or have many disjoint
- smaller ranges without loss of efficiency. Marks are also
- implemented in a way that allows large numbers of marks.
- The only known mode of operation where a text widget may not
- run efficiently is if it has a very large number of dif-
- ferent tags. Hundreds of tags should be fine, or even a
- thousand, but tens of thousands of tags will make texts con-
- sume a lot of memory and run slowly.
-
-
- KEYWORDS
- text, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tk 16
-
-
-
-